<?php
/*
 * Szablon kontrolera ajaxowego.
 * Automatyzuje typowe zmiany w tego typu kontrolerze
 */
class My_Controller_Base extends Zend_Controller_Action
{    
	// MVC Layout
	protected $_oLayout = null;
			
	// Logowanie zdarzeń
	protected $_oLog;
	
	// ActionHelper ViewRenderer
	protected $_oViewRenderer = null;
	
	// ActionHelper Redirector
	protected $_oRedirector;
	
	// ActionHelper SimpleFormHandler
	protected $_oSimpleFormHandler;
	
	public function init()
	{
		// Obsługa widoków itp.
		$this->_oLayout = Zend_Layout::getMvcInstance();
		$this->_oViewRenderer = $this->getHelper( 'viewRenderer' );
		
		// Helper zapewniający redirecty zgodne z routerem
		$this->_oRedirector = $this->getHelper( 'redirector' );
		
		// Helper usprawniający obsługę typowych formularzy
		//$this->_oSimpleFormHandler = $this->getHelper( 'simpleFormHandler' );
	}
	
	
	/**
	 * Loguje zdarzenia, jeśli jest zdefiniowany jakiś obiekt Zend_Log
	 * 
	 * @param string $sKomunikat	Treść do zapisania w logach
	 * @param boolean $bBlad		Czy błąd? Oznaczenie komunikatów ułatwia analizę logów
	 * @param $bTylkoDevelopment	Wyświetli komunikat tylko w wersji produkcyjnej - ważne dla FirePHP
	 * 								(o ile możemy chcieć logować dane do plików na serwerze nawet po
	 * 								 wdrożeniu aplikacji, o tyle wypisywanie ich do przeglądarki było
	 * 								 by nierozsądne) 
	 */
	public function _logujZdarzenie( $sKomunikat, $bBlad, $bTylkoDevelopment = false )
	{
		$sKomunikat 	= 	'Akcja ' . $this->getRequest()->getActionName() . ': ' . 
							( $bBlad ? 'ERROR' : 'OK' ) . "\n" . $sKomunikat;

		// Dla domyślnego parametru wypisuj zawsze
		if( !( !Zend_Registry::get('develConfig')->development && $bTylkoDevelopment ) )
		{
			if( $this->_oLog ) $this->_oLog->debug( $sKomunikat );		
		}
	}
}